package com.jielin.handling.mapper.record;

import com.jielin.handling.entity.record.RecordDetailed;
import com.jielin.handling.entity.record.RecordDetailedAppVo;
import com.jielin.handling.entity.record.RecordDetailedVideo;
import com.jielin.handling.entity.vo.record.RecordDetailedPoliceManVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface RecordDetailedMapper {

    List<RecordDetailed> findAllDetailed();// 查询所有笔录信息

    int addDetailed(RecordDetailed recordDetailed);// 新增一条笔录信息

    int updateDetailed(RecordDetailed recordDetailed);// 保存更新一条笔录信息

    RecordDetailed findDetailedById(@Param("detailedId") String detailedId);// 根据笔录id查询笔录详细信息

    List<RecordDetailed> findDetailedBySuspectId(String suspectId);// 根据嫌疑人id查询对应的笔录所有详细信息

    List<String> findVideoBySuspectId(String suspectId);// 根据嫌疑人id查询对应笔录的录像文件路径

    List<RecordDetailedVideo> findVideoBySuspectId2(String suspectId);// 根据嫌疑人id查询对应笔录的录像文件路径

    int updateDetailedPdfPath(RecordDetailed recordDetailed);// 保存生成的笔录pdf文件路径

    List<String> findPdfBySuspectId(String suspectId);// 根据嫌疑人id查询对应笔录的pdf文件路径

    RecordDetailedAppVo findDetailedAppVoBySuspectId(@Param("suspectId") String suspectId, @Param("begin") int begin,
                                                     @Param("end") int end);// 根据嫌疑人id查询笔录信息

    int findDetailedCountBySuspectId(String suspectId);// 根据嫌疑人id查询有几次

    List<Date> findDetailedNumBySuspectId(String suspectId);


    /**
     * 更新办案区视频存储路径
     *
     * @param rdvList
     * @return
     */
    int updateDetailedVideo(@Param("rdvList") List<RecordDetailedVideo> rdvList);

    /**
     * 根据随身物品id查询录像路径
     *
     * @param belongingsId
     * @return
     */
    List<String> findVideoByBelongingsId(String belongingsId);

    /**
     * 查询pdf路径
     *
     * @param id
     * @return
     */
    String findPathById(String id);

    /**
     * 查询我的笔录
     *
     * @param policeId
     * @param startDate
     * @param endDate
     * @return
     */
    List<RecordDetailedPoliceManVo> findDetailedByRecordPoliceId(@Param("policeId") String policeId,
                                                                 @Param("startDate") String startDate, @Param("endDate") String endDate);

    /**
     * 查询建立索引的笔录
     *
     * @return
     */
    List<RecordDetailed> findNoIndexRecord();

    /**
     * 更新已建立索引的记录状态
     *
     * @param ids
     */
    int updateDetailedIsIndex(@Param("ids") List<String> ids);
}
